推荐系统领域中那些巧妙运用的idea
本人于2019年12月份在知乎平台上提出了《在推荐系统领域有什么巧妙的idea》的问题,截止目前已经有近1k关注,近40k的浏览,可见大家对于推荐系统领域的广泛关注。
问题详细描述
在推荐系统领域中,无论是工业界或者学术界,有什么巧妙的想法或者技术让人感觉眼前一亮呢,之前的经典方法或者前沿的理论都可以,或者与其他学科进行交叉研究带来的有趣结论等。以下为牛人的经典回答,特此整理供大家学习。
因子分解机模型
FM(factorization machine)是最妙的模型,因为他做到了多快好省。
FM的核心思想是对特征间做两两矩阵分解,相比线性模型能够挖掘二阶组合特征对label的影响。
通过对FM做一些调整,将用户和物品都向量化,使得向量的内积就是推理结果,简单的按位乘背后是用户和物品的特征之间两两矩阵分解的结果。
这样的FM可以做排序,可以做向量召回,可以做多路召回的粗排。
用来做排序,使用logloss,例如进行CTR(点击率)预估,这个不够神奇。
粗排的loss和排序一样,但是一般在多路召回之后,上万的物品的得分不可比,要过粗排统一打分,这个真的把训练时的模型直接线上推理性能是扛不住的。
向量召回呢,加上负采样,配合sampled softmax这样的loss,要把用户和物品进行向量化表示,对物品向量使用如faiss的库进行knn索引,然后高效检索。但是乍看起来FM并没有将用户和物品向量化。
对FM做个变形
对FM的二阶项稍作调整,把二阶项分成user侧和item侧,仅仅做user和item侧的交叉。
如上面公式描述的。内积乘法是满足分配率的,那么用户侧和物品侧特征两两矩阵分解后向量的内积和,可以变成用户侧向量和与物品侧向量和的内积。
再对一阶项和bias做处理,用户侧的一阶项权重拼成一个向量,在物品侧补同样个数的1,相应的物品侧也做同样的事情。其中全局bias当成物品侧的一阶项来处理
如果是粗排,以点击率预估为例,那么在多路召回后,我可以从内存数据库里取出一万个物品对应的向量,然后和用户向量做内积计算,套上sigmoid函数就得到了预估点击率。
如果是向量召回,物品向量拿去用faiss做索引,把索引带到线上用faiss加载到内存里,这时候传入用户向量,就能在内积空间里取得topk相近的物品,完成了召回任务。
为什么要大费周章的做这些操作呢?因为FM在这样处理后做到了多快好省。
多:做粗排时,面对上万物品,从容不迫;做召回时,配合如faiss的向量knn索引,面对百万级别的候选池,毫无压力。
快:内积运算简单,在线服务RT(响应时间)短。
好:FM的效果不俗,不信DeepFM去掉FM看一看。
省:不用搭建一个复杂的在线服务,只需要一个KeyValue的数据存储,引入一个faiss库。
如果让我从零到一搭建一个推荐系统,但只能选择一个算法,我只用FM就可以了,做向量召回,做CTR预估,召回和排序都有了,打完收工。
作者:九老师
链接:https://www.zhihu.com/question/362190044/answer/945591801
深度树匹配模型
利用数据结构中的最大堆模型,借鉴数据库中的检索树结构,完全跳脱出传统推荐算法的协同过滤、隐因子分解和深广度模型框架,就是深度树匹配模型。
去年有幸听过阿里妈妈算法团队探微老师的一次分享,他们开发的Tree-based Deep Match(TDM)模型以最大堆为基础,衍生出一套完整的基于树的深度学习推荐算法框架。以前的算法归根结底都是线性代数+微积分的巧妙结合,但TDM不同,这是个少有的结合了数据结构和机器学习算法的模型。这套框架就像一个地基,不但可以单独拿来用,还可以在上面搭建各种fancy的深度模型。
TDM的基本思想是通过建立用户兴趣层次树结构,实现高效的全库检索(类似于数据库),并以此为基础,结合深度模型+Attention等更先进的计算结构,达到了在召回速度、召回精度以及新颖性等指标上相对于传统推荐方法的显著效果提升。
作者:图灵的猫
链接:https://www.zhihu.com/question/362190044/answer/970781462
深度兴趣网络模型
作者:starays
链接:https://www.zhihu.com/question/362190044/answer/965025700
随机游走思想
作者:jifei
链接:https://www.zhihu.com/question/362190044/answer/946728696
注意力机制
作者:王建周
链接:https://www.zhihu.com/question/362190044/answer/947591512
矩阵分解模型
作者:张小磊
链接:https://www.zhihu.com/question/362190044/answer/1009984352
推荐流程设计
作者:于无声处听惊雷
链接:https://www.zhihu.com/question/362190044/answer/967120101
更多有趣的想法和技术欢迎大家补充。
推荐阅读
关注公众号回复关键字【推荐系统论文】获取超百篇完整论文列表下载链接。